// 非常男女

#include<iostream>
#include<memory.h>
#include<vector>
using namespace std;

int a[100001];  // 原始序列，1代表男生，-1代表女生
int sum[200001];// 前缀和，0代表前半段男女数量一致
int map[200001];// 记录sum中不同位置的前缀和，前缀和相等的两点间男女数量一致

int main(void)
{
	int n;
	cin >> n;
	for(int i=1;i<=n;i++)
    {
		cin >> a[i];
		if(a[i]==0)
            a[i]=-1;
        
		sum[i]=sum[i-1]+a[i];
	}
	
    int ans = 0; // 最长序列
	for(int i=1;i<=n;i++)
    {
		// 因为sum表示从1-n的前缀和，所以如果等于0
        // 那么表示从1开始到目前这个数，
		// 1和-1的个数是一样的，所以ans取max 
		if(sum[i]==0)
        {
			ans=max(ans,i);
			continue;
		}
        
		// map[j]记录j这个前缀和出现的最早位置
		//如果前缀和出现过，更新ans值。 
		if(map[sum[i]+n] && ans<i-map[sum[i]+n])
			ans=i-map[sum[i]+n];

		//如果这个和没有出现过，就记录当前第一次出现的位置 
		if(map[sum[i]+n]==0)
            map[sum[i]+n]=i;
	}
	
	cout<< ans <<endl;
	return 0;
}